home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c42.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  22KB  |  1,026 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. T0* r190base_class_written(T190* C){
  12. T0* R=NULL;
  13. R=r64base_class((T64*)(r190written_in(C)));
  14. return R;
  15. }
  16. /*No:ARGUMENT_NAME1.is_result*/
  17.  
  18.  
  19. void r190mapping_c_target(T190* C,T0* a1){
  20. T0* _rt=NULL;
  21. T6 _flag=0;
  22. _flag=r25call_invariant_start(a1);
  23. _rt=X54run_type((C)->_result_type/*12*/);
  24. /*[IF*/
  25. if(X54is_reference(_rt)){
  26. /*[IF*/
  27. if(X54is_reference(a1)){
  28. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_510));
  29. /*]*/
  30. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X54id(a1));
  31. /*]*/
  32. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_172));
  33. /*]*/
  34. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  35. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  36. T3 b1='\51';
  37. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  38. }/*]*/
  39. /*]*/
  40. }
  41. else{
  42. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  43. }
  44. /*FI]*/
  45. }
  46. else{
  47. /*[IF*/
  48. if(X54is_reference(a1)){
  49. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  50. }
  51. else{
  52. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  53. }
  54. /*FI]*/
  55. }
  56. /*FI]*/
  57. /*[IF*/
  58. if(_flag){
  59. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  60. T3 b1='\51';
  61. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  62. }/*]*/
  63. /*]*/
  64. }
  65. /*FI]*/
  66. }
  67. /*No:ARGUMENT_NAME1.can_be_dropped*/
  68.  
  69.  
  70. T0* r190twin(T190* C){
  71. T0* R=NULL;
  72. R=malloc(sizeof(*C));
  73. *((T190*)R)=*C;
  74. return R;
  75. }
  76. /*No:ARGUMENT_NAME1.c_declare_for_old*/
  77. /*No:ARGUMENT_NAME1.name_clash*/
  78. /*No:ARGUMENT_NAME1.dca_inline_argument*/
  79. /*No:ARGUMENT_NAME1.fz_b7*/
  80.  
  81.  
  82. void r190compile_to_c(T190* C){
  83. /*[IF*/
  84. if(X54is_user_expanded((C)->_result_type/*12*/)){
  85. /*[IF*/
  86. if(X54is_dummy_expanded((C)->_result_type/*12*/)){
  87. }
  88. else{
  89. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  90. T3 b1='\52';
  91. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  92. }/*]*/
  93. /*]*/
  94. }
  95. /*FI]*/
  96. }
  97. /*FI]*/
  98. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  99. }
  100. /*No:ARGUMENT_NAME1.fz_b8*/
  101. /*No:ARGUMENT_NAME1.isa_dca_inline_argument*/
  102.  
  103.  
  104. T0* r190written_in(T190* C){
  105. T0* R=NULL;
  106. T0* _sp=NULL;
  107. _sp=(C)->_start_position/*4*/;
  108. /*[IF*/
  109. if((_sp)!=((void*)(NULL))){
  110. R=(((T70*)_sp))->_base_class_name/*0*/;
  111. }
  112. /*FI]*/
  113. return R;
  114. }
  115. /*No:ARGUMENT_NAME1.set_result_type*/
  116.  
  117.  
  118. void r190name_clash_for(T190* C,T0* a1,T0* a2){
  119. T0* _bc=NULL;
  120. T0* _rc=NULL;
  121. T0* _rf=NULL;
  122. _bc=r190base_class_written(C);
  123. /*[IF*/
  124. if(r63has_simple_feature_name(((T63*)_bc),(C)->_to_string/*8*/)){
  125. _rc=X54run_class(a1);
  126. _rf=r24get_feature_with(((T24*)_rc),(C)->_to_string/*8*/);
  127. /*[IF*/
  128. if((_rf)!=((void*)(NULL))){
  129. r21add_position(X51start_position(_rf));
  130. }
  131. /*FI]*/
  132. r190error((C)->_start_position/*4*/,a2);
  133. }
  134. /*FI]*/
  135. }
  136.  
  137.  
  138. void r190error(T0* a1,T0* a2){
  139. r21add_position(a1);
  140. r21error((T21*)(oBC12eh),a2);
  141. }
  142. /*No:ARGUMENT_NAME1.set_rank*/
  143.  
  144.  
  145. void r190make(T190* C,T0* a1,T0* a2){
  146. C->_start_position=a1;
  147. C->_to_string=r84item(a2);
  148. }
  149. /*No:ARGUMENT_NAME1.is_current*/
  150.  
  151.  
  152. void r190mapping_c_arg(T190* C,T0* a1){
  153. T0* _rt=NULL;
  154. _rt=X54run_type((C)->_result_type/*12*/);
  155. /*[IF*/
  156. if(X54is_reference(_rt)){
  157. /*[IF*/
  158. if(X54is_reference(a1)){
  159. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  160. }
  161. else{
  162. X54to_expanded(_rt);
  163. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  164. T3 b1='\50';
  165. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  166. }/*]*/
  167. /*]*/
  168. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  169. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  170. T3 b1='\51';
  171. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  172. }/*]*/
  173. /*]*/
  174. }
  175. /*FI]*/
  176. }
  177. else{
  178. /*[IF*/
  179. if(X54is_reference(a1)){
  180. X54to_reference(_rt);
  181. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  182. T3 b1='\50';
  183. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  184. }/*]*/
  185. /*]*/
  186. /*[IF*/
  187. if(X54is_user_expanded(_rt)){
  188. /*[IF*/
  189. if(!(X54is_dummy_expanded(_rt))){
  190. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  191. T3 b1='\52';
  192. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  193. }/*]*/
  194. /*]*/
  195. }
  196. /*FI]*/
  197. }
  198. /*FI]*/
  199. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  200. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  201. T3 b1='\51';
  202. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  203. }/*]*/
  204. /*]*/
  205. }
  206. else{
  207. r25print_argument((T25*)(oBC12cpp),(C)->_rank/*16*/);
  208. }
  209. /*FI]*/
  210. }
  211. /*FI]*/
  212. }
  213. /*No:ARGUMENT_NAME1.is_void*/
  214. /*No:ARGUMENT_NAME1.afd_check*/
  215. /*No:PROC_CALL_1.call_proc_call_c2c*/
  216. /*No:PROC_CALL_1.feature_name*/
  217.  
  218.  
  219. void r164finalize(T164* C){
  220. T0* _rf=NULL;
  221. T0* _rc=NULL;
  222. _rf=(C)->_run_feature/*12*/;
  223. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  224. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  225. }
  226.  
  227.  
  228. T0* r164start_position(T164* C){
  229. T0* R=NULL;
  230. R=X83start_position((C)->_feature_name/*8*/);
  231. return R;
  232. }
  233.  
  234.  
  235. T0* r164add_comment(T164* C,T0* a1){
  236. T0* R=NULL;
  237. /*[IF*/
  238. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  239. R=(T0*)C;
  240. }
  241. /*AF*/else{
  242. {T225*n=malloc(sizeof(*n));
  243. *n=M225;
  244. r225make(n,(T0*)C,a1);
  245. R=(T0*)n;
  246. }
  247. }
  248. /*FI]*/
  249. return R;
  250. }
  251.  
  252.  
  253. T6 r164use_current(T164* C){
  254. T6 R=0;
  255. T0* _s=NULL;
  256. T0* _ms=NULL;
  257. /*[IF*/
  258. if((((T0*)ms14_15220))==((void*)(X83to_string((C)->_feature_name/*8*/)))){
  259. _ms=r164arg1(C);
  260. if(NULL!=(_ms))switch(((T0*)_ms)->id) {
  261. case 171: 
  262. break;
  263. default:
  264. _ms=NULL;
  265. };_s=(((T171*)_ms))->_to_string/*8*/;
  266. R=r7has(((T7*)_s),'C');
  267. }
  268. else{
  269. R=r164standard_use_current(C);
  270. }
  271. /*FI]*/
  272. return R;
  273. }
  274.  
  275.  
  276. T0* r164to_runnable(T164* C,T0* a1){
  277. T0* R=NULL;
  278. T0* _rf=NULL;
  279. T0* _a=NULL;
  280. T0* _t=NULL;
  281. _t=r164runnable_expression((C)->_target/*4*/,a1);
  282. _a=r164runnable_args((C)->_arguments/*16*/,a1);
  283. _rf=r164run_feature_for(C,_t,a1);
  284. /*[IF*/
  285. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  286. C->_target=_t;
  287. C->_arguments=_a;
  288. C->_run_feature=_rf;
  289. r164run_feature_match(C,a1);
  290. R=(T0*)C;
  291. }
  292.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
  293. R=(T0*)C;
  294. }
  295. else{
  296. {T164*n=malloc(sizeof(*n));
  297. *n=M164;
  298. r164with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  299. R=(T0*)n;
  300. }
  301. }
  302. /*FI]*/
  303. return R;
  304. }
  305. /*No:PROC_CALL_1.is_pre_computable*/
  306. /*No:PROC_CALL_1.fz_bad_argument*/
  307.  
  308.  
  309. T6 r164standard_use_current(T164* C){
  310. T6 R=0;
  311. /*[IF*/
  312. {/*AT*/R=X149use_current((C)->_arguments/*16*/);
  313. }
  314. /*FI]*/
  315. /*[IF*/
  316. if(R){
  317. }
  318.  else if(X56is_current((C)->_target/*4*/)){
  319. R=X51use_current((C)->_run_feature/*12*/);
  320. }
  321. else{
  322. R=X56use_current((C)->_target/*4*/);
  323. }
  324. /*FI]*/
  325. return R;
  326. }
  327.  
  328.  
  329. void r164collect_c_tmp(T164* C){
  330. /*[IF*/
  331. if(((C)->_run_feature/*12*/)!=((void*)(NULL))){
  332. X51collect_c_tmp((C)->_run_feature/*12*/);
  333. }
  334. /*FI]*/
  335. X56collect_c_tmp((C)->_target/*4*/);
  336. /*[IF*/
  337. if(((C)->_arguments/*16*/)!=((void*)(NULL))){
  338. X149collect_c_tmp((C)->_arguments/*16*/);
  339. }
  340. /*FI]*/
  341. }
  342. /*No:PROC_CALL_1.run_feature*/
  343.  
  344.  
  345. T0* r164runnable_args(T0* a1,T0* a2){
  346. T0* R=NULL;
  347. R=X149to_runnable(a1,a2);
  348. /*[IF*/
  349. if((R)==((void*)(NULL))){
  350. r21add_position(X149start_position(a1));
  351. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  352. r21fatal_error((T21*)(oBC12eh),b1);
  353. }/*]*/
  354. }
  355. /*FI]*/
  356. return R;
  357. }
  358. /*No:PROC_CALL_1.fz_07*/
  359.  
  360.  
  361. T0* r164make_runnable(T164* C,T0* a1,T0* a2,T0* a3){
  362. T0* R=NULL;
  363. /*[IF*/
  364. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  365. C->_target=a1;
  366. C->_arguments=a2;
  367. C->_run_feature=a3;
  368. R=(T0*)C;
  369. }
  370. else{
  371. {T164*n=malloc(sizeof(*n));
  372. *n=M164;
  373. r164make(n,a1,(C)->_feature_name/*8*/,a2);
  374. R=(T0*)n;
  375. }
  376. /*[IRF3.3set_run_feature*/((((T164*)(((T164*)R))))->_run_feature)=(a3);
  377. /*]*/
  378. }
  379. /*FI]*/
  380. return R;
  381. }
  382. /*No:PROC_CALL_1.us_c_inline_c*/
  383. /*No:PROC_CALL_1.arg_count*/
  384.  
  385.  
  386. void r164with(T164* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  387. C->_target=a1;
  388. C->_feature_name=a2;
  389. C->_arguments=a3;
  390. C->_run_feature=a4;
  391. r164run_feature_match(C,a5);
  392. }
  393. /*No:PROC_CALL_1.fatal_error*/
  394.  
  395.  
  396. void r164run_feature_match(T164* C,T0* a1){
  397. r164run_feature_has_no_result(C);
  398. X149match_with((C)->_arguments/*16*/,(C)->_run_feature/*12*/,a1);
  399. }
  400. /*No:PROC_CALL_1.arguments*/
  401.  
  402.  
  403. T0* r164runnable_expression(T0* a1,T0* a2){
  404. T0* R=NULL;
  405. R=X56to_runnable(a1,a2);
  406. /*[IF*/
  407. if((R)==((void*)(NULL))){
  408. r21add_position(X56start_position(a1));
  409. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  410. r21fatal_error((T21*)(oBC12eh),b1);
  411. }/*]*/
  412. }
  413. /*FI]*/
  414. return R;
  415. }
  416.  
  417.  
  418. void r164run_feature_has_no_result(T164* C){
  419. /*[IF*/
  420. if((X51result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
  421. r21add_position(X51start_position((C)->_run_feature/*12*/));
  422. r21add_position(X83start_position((C)->_feature_name/*8*/));
  423. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms162_67122);
  424. r21fatal_error((T21*)(oBC12eh),b1);
  425. }/*]*/
  426. }
  427. /*FI]*/
  428. }
  429.  
  430.  
  431. void r164compile_to_c(T164* C){
  432. r25se_trace_ins((T25*)(oBC12cpp),r164start_position(C));
  433. /*[IRF3.6call_proc_call_c2c*/{T164* C1=C;
  434. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  435. }/*]*/
  436. }
  437.  
  438.  
  439. T0* r164arg1(T164* C){
  440. T0* R=NULL;
  441. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*16*/))->_first_one/*4*//*)*/);
  442. return R;
  443. }
  444. /*No:PROC_CALL_1.set_run_feature*/
  445.  
  446.  
  447. T0* r164run_feature_for(T164* C,T0* a1,T0* a2){
  448. T0* R=NULL;
  449. T0* _rc=NULL;
  450. _rc=X54run_class(X56result_type(a1));
  451. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*8*/,a2);
  452. return R;
  453. }
  454. /*No:PROC_CALL_1.target*/
  455. /*No:PROC_CALL_1.end_mark_comment*/
  456.  
  457.  
  458. void r164make(T164* C,T0* a1,T0* a2,T0* a3){
  459. C->_target=a1;
  460. C->_feature_name=a2;
  461. C->_arguments=a3;
  462. }
  463.  
  464.  
  465. void r164afd_check(T164* C){
  466. T0* _running=NULL;
  467. T0* _rc=NULL;
  468. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  469. _running=(((T24*)_rc))->_running/*12*/;
  470. /*[IF*/
  471. if((_running)==((void*)(NULL))){
  472. r21add_position(X56start_position((C)->_target/*4*/));
  473. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  474. r7append((T7*)(oBC21explanation),b1);
  475. }/*]*/
  476. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  477. r7append((T7*)(oBC21explanation),b1);
  478. }/*]*/
  479. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  480. r7append((T7*)(oBC21explanation),b1);
  481. }/*]*/
  482. r21print_as_warning((T21*)(oBC12eh));
  483. r24set_at_run_time(((T24*)_rc));
  484. }
  485.  else if((r328count(((T328*)_running)))>(1)){
  486. r331update((C)->_target/*4*/,(C)->_run_feature/*12*/);
  487. }
  488. /*FI]*/
  489. X56afd_check((C)->_target/*4*/);
  490. /*[IF*/
  491. {/*AT*/X149afd_check((C)->_arguments/*16*/);
  492. }
  493. /*FI]*/
  494. }
  495. /*No:CALL_INFIX_INT_REM.static_value*/
  496. /*No:CALL_INFIX_INT_REM.call_proc_call_c2c*/
  497. /*No:CALL_INFIX_INT_REM.feature_name*/
  498.  
  499.  
  500. void r134finalize(T134* C){
  501. T0* _rf=NULL;
  502. T0* _rc=NULL;
  503. _rf=(C)->_run_feature/*16*/;
  504. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  505. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  506. }
  507.  
  508.  
  509. T6 r134is_static(T134* C){
  510. T6 R=0;
  511. /*[IF*/
  512. if(X54is_integer(r134result_type(C))){
  513. /*[IF*/
  514. if((X56is_static((C)->_target/*4*/))&&(X56is_static(r134arg1(C)))){
  515. R=1;
  516. C->_static_value_mem=(X56static_value((C)->_target/*4*/))%(X56static_value(r134arg1(C)));
  517. }
  518. /*FI]*/
  519. }
  520. /*FI]*/
  521. return R;
  522. }
  523. /*No:CALL_INFIX_INT_REM.is_manifest_string*/
  524.  
  525.  
  526. T0* r134start_position(T134* C){
  527. T0* R=NULL;
  528. R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  529. return R;
  530. }
  531. /*No:CALL_INFIX_INT_REM.c_simple*/
  532.  
  533.  
  534. T0* r134add_comment(T134* C,T0* a1){
  535. T0* R=NULL;
  536. /*[IF*/
  537. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  538. R=(T0*)C;
  539. }
  540. else{
  541. {T230*n=malloc(sizeof(*n));
  542. *n=M230;
  543. r230make(n,(T0*)C,a1);
  544. R=(T0*)n;
  545. }
  546. }
  547. /*FI]*/
  548. return R;
  549. }
  550.  
  551.  
  552. T2 r134to_integer(T134* C){
  553. T2 R=0;
  554. r134error(r134start_position(C),((T0*)ms13_45846));
  555. return R;
  556. }
  557.  
  558.  
  559. T6 r134use_current(T134* C){
  560. T6 R=0;
  561. /*[IF*/
  562. {/*AT*/R=X149use_current((C)->_arguments/*8*/);
  563. }
  564. /*FI]*/
  565. /*[IF*/
  566. if(R){
  567. }
  568.  else if(X56is_current((C)->_target/*4*/)){
  569. R=X51use_current((C)->_run_feature/*16*/);
  570. }
  571. else{
  572. R=X56use_current((C)->_target/*4*/);
  573. }
  574. /*FI]*/
  575. return R;
  576. }
  577.  
  578.  
  579. T0* r134to_runnable(T134* C,T0* a1){
  580. T0* R=NULL;
  581. T0* _rf=NULL;
  582. T0* _tbee=NULL;
  583. T0* _at=NULL;
  584. T0* _tt=NULL;
  585. T0* _a=NULL;
  586. T0* _t=NULL;
  587. _t=r134runnable_expression((C)->_target/*4*/,a1);
  588. _a=r134runnable_args((C)->_arguments/*8*/,a1);
  589. _tt=X56result_type(_t);
  590. _at=X56result_type(r134arg1(C));
  591. /*[IF*/
  592. /*AF*//*AE*/
  593. /*FI]*/
  594. _rf=r134run_feature_for(C,_t,a1);
  595. /*[IF*/
  596. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  597. C->_target=_t;
  598. C->_arguments=_a;
  599. C->_run_feature=_rf;
  600. r134run_feature_match(C,a1);
  601. R=(T0*)C;
  602. }
  603.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  604. R=(T0*)C;
  605. }
  606. else{
  607. {T134*n=malloc(sizeof(*n));
  608. *n=M134;
  609. r134with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  610. R=(T0*)n;
  611. }
  612. }
  613. /*FI]*/
  614. return R;
  615. }
  616.  
  617.  
  618. void r134compile_to_c_old(T134* C){
  619. X56compile_to_c_old((C)->_target/*4*/);
  620. /*[IF*/
  621. {/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
  622. }
  623. /*FI]*/
  624. }
  625. /*No:CALL_INFIX_INT_REM.is_pre_computable*/
  626. /*No:CALL_INFIX_INT_REM.fz_bad_argument*/
  627.  
  628.  
  629. void r134collect_c_tmp(T134* C){
  630. /*[IF*/
  631. if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
  632. X51collect_c_tmp((C)->_run_feature/*16*/);
  633. }
  634. /*FI]*/
  635. X56collect_c_tmp((C)->_target/*4*/);
  636. /*[IF*/
  637. if(((C)->_arguments/*8*/)!=((void*)(NULL))){
  638. X149collect_c_tmp((C)->_arguments/*8*/);
  639. }
  640. /*FI]*/
  641. }
  642. /*No:CALL_INFIX_INT_REM.fz_iinaiv*/
  643.  
  644.  
  645. T0* r134result_type(T134* C){
  646. T0* R=NULL;
  647. T0* _tla=NULL;
  648. R=X51result_type((C)->_run_feature/*16*/);
  649. /*[IF*/
  650. if(X54is_like_current(R)){
  651. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  652. }
  653. else{
  654. _tla=R;
  655. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  656. case 258: 
  657. break;
  658. default:
  659. _tla=NULL;
  660. };/*[IF*/
  661. if((_tla)!=((void*)(NULL))){
  662. R=X54run_type(X56result_type(r134arg1(C)));
  663. }
  664. /*FI]*/
  665. }
  666. /*FI]*/
  667. return R;
  668. }
  669. /*No:CALL_INFIX_INT_REM.static_value_mem*/
  670. /*No:CALL_INFIX_INT_REM.run_feature*/
  671.  
  672.  
  673. T0* r134runnable_args(T0* a1,T0* a2){
  674. T0* R=NULL;
  675. R=X149to_runnable(a1,a2);
  676. /*[IF*/
  677. if((R)==((void*)(NULL))){
  678. r21add_position(X149start_position(a1));
  679. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  680. r21fatal_error((T21*)(oBC12eh),b1);
  681. }/*]*/
  682. }
  683. /*FI]*/
  684. return R;
  685. }
  686. /*No:CALL_INFIX_INT_REM.fz_07*/
  687. /*No:CALL_INFIX_INT_REM.arg_count*/
  688.  
  689.  
  690. void r134with(T134* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  691. C->_target=a1;
  692. C->_feature_name=a2;
  693. C->_arguments=a3;
  694. C->_run_feature=a4;
  695. r134run_feature_match(C,a5);
  696. }
  697. /*No:CALL_INFIX_INT_REM.is_result*/
  698. /*No:CALL_INFIX_INT_REM.fatal_error*/
  699.  
  700.  
  701. void r134mapping_c_target(T134* C,T0* a1){
  702. T0* _actual_type=NULL;
  703. T6 _flag=0;
  704. _flag=r25call_invariant_start(a1);
  705. _actual_type=X54run_type(r134result_type(C));
  706. /*[IF*/
  707. if(X54is_reference(_actual_type)){
  708. /*[IF*/
  709. if(X54is_reference(a1)){
  710. X54mapping_cast(a1);
  711. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  712. T3 b1='\50';
  713. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  714. }/*]*/
  715. /*]*/
  716. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  717. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  718. }/*]*/
  719. /*]*/
  720. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  721. T3 b1='\51';
  722. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  723. }/*]*/
  724. /*]*/
  725. }
  726. else{
  727. X54to_expanded(_actual_type);
  728. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  729. T3 b1='\50';
  730. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  731. }/*]*/
  732. /*]*/
  733. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  734. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  735. }/*]*/
  736. /*]*/
  737. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  738. T3 b1='\51';
  739. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  740. }/*]*/
  741. /*]*/
  742. }
  743. /*FI]*/
  744. }
  745. else{
  746. /*[IF*/
  747. if(X54is_reference(a1)){
  748. X54to_reference(_actual_type);
  749. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  750. T3 b1='\50';
  751. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  752. }/*]*/
  753. /*]*/
  754. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  755. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  756. }/*]*/
  757. /*]*/
  758. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  759. T3 b1='\51';
  760. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  761. }/*]*/
  762. /*]*/
  763. }
  764. else{
  765. /*[IF*/
  766. if(X54need_c_struct(a1)){
  767. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  768. T3 b1='\46';
  769. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  770. }/*]*/
  771. /*]*/
  772. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  773. T3 b1='\50';
  774. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  775. }/*]*/
  776. /*]*/
  777. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  778. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  779. }/*]*/
  780. /*]*/
  781. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  782. T3 b1='\51';
  783. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  784. }/*]*/
  785. /*]*/
  786. }
  787. else{
  788. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  789. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  790. }/*]*/
  791. /*]*/
  792. }
  793. /*FI]*/
  794. }
  795. /*FI]*/
  796. }
  797. /*FI]*/
  798. /*[IF*/
  799. if(_flag){
  800. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  801. T3 b1='\51';
  802. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  803. }/*]*/
  804. /*]*/
  805. }
  806. /*FI]*/
  807. }
  808.  
  809.  
  810. void r134run_feature_match(T134* C,T0* a1){
  811. r134run_feature_has_result(C);
  812. X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
  813. }
  814. /*No:CALL_INFIX_INT_REM.arguments*/
  815.  
  816.  
  817. T0* r134runnable_expression(T0* a1,T0* a2){
  818. T0* R=NULL;
  819. R=X56to_runnable(a1,a2);
  820. /*[IF*/
  821. if((R)==((void*)(NULL))){
  822. r21add_position(X56start_position(a1));
  823. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  824. r21fatal_error((T21*)(oBC12eh),b1);
  825. }/*]*/
  826. }
  827. /*FI]*/
  828. return R;
  829. }
  830. /*No:CALL_INFIX_INT_REM.can_be_dropped*/
  831.  
  832.  
  833. void r134c_declare_for_old(T134* C){
  834. X56c_declare_for_old((C)->_target/*4*/);
  835. /*[IF*/
  836. {/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
  837. }
  838. /*FI]*/
  839. }
  840. /*No:CALL_INFIX_INT_REM.implicit_cast*/
  841. /*No:CALL_INFIX_INT_REM.dca_inline_argument*/
  842. /*No:CALL_INFIX_INT_REM.compile_to_c*/
  843. /*No:CALL_INFIX_INT_REM.us_backslash_backslash*/
  844. /*No:CALL_INFIX_INT_REM.isa_dca_inline_argument*/
  845.  
  846.  
  847. T0* r134arg1(T134* C){
  848. T0* R=NULL;
  849. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
  850. return R;
  851. }
  852.  
  853.  
  854. void r134run_feature_has_result(T134* C){
  855. /*[IF*/
  856. if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  857. r21add_position(X51start_position((C)->_run_feature/*16*/));
  858. r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  859. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  860. r21fatal_error((T21*)(oBC12eh),b1);
  861. }/*]*/
  862. }
  863. /*FI]*/
  864. }
  865.  
  866.  
  867. T0* r134run_feature_for(T134* C,T0* a1,T0* a2){
  868. T0* R=NULL;
  869. T0* _rc=NULL;
  870. _rc=X54run_class(X56result_type(a1));
  871. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  872. return R;
  873. }
  874. /*No:CALL_INFIX_INT_REM.target*/
  875.  
  876.  
  877. void r134error(T0* a1,T0* a2){
  878. r21add_position(a1);
  879. r21error((T21*)(oBC12eh),a2);
  880. }
  881.  
  882.  
  883. void r134make(T134* C,T0* a1,T0* a2,T0* a3){
  884. C->_target=a1;
  885. {T138*n=malloc(sizeof(*n));
  886. *n=M138;
  887. r138make(n,r134operator(),a2);
  888. C->_feature_name=(T0*)n;
  889. }
  890. {T149*n=malloc(sizeof(*n));
  891. *n=M149;
  892. /*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
  893. /*]*/
  894. C->_arguments=(T0*)n;
  895. }
  896. }
  897. /*No:CALL_INFIX_INT_REM.is_current*/
  898.  
  899.  
  900. void r134mapping_c_arg(T134* C,T0* a1){
  901. T0* _actual_type=NULL;
  902. _actual_type=X54run_type(r134result_type(C));
  903. /*[IF*/
  904. if(X54is_reference(_actual_type)){
  905. /*[IF*/
  906. if(X54is_reference(a1)){
  907. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  908. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  909. }/*]*/
  910. /*]*/
  911. }
  912. else{
  913. X54to_expanded(_actual_type);
  914. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  915. T3 b1='\50';
  916. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  917. }/*]*/
  918. /*]*/
  919. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  920. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  921. }/*]*/
  922. /*]*/
  923. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  924. T3 b1='\51';
  925. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  926. }/*]*/
  927. /*]*/
  928. }
  929. /*FI]*/
  930. }
  931. else{
  932. /*[IF*/
  933. if(X54is_reference(a1)){
  934. X54to_reference(_actual_type);
  935. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  936. T3 b1='\50';
  937. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  938. }/*]*/
  939. /*]*/
  940. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  941. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  942. }/*]*/
  943. /*]*/
  944. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  945. T3 b1='\51';
  946. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  947. }/*]*/
  948. /*]*/
  949. }
  950. else{
  951. /*[IF*/
  952. if(X54need_c_struct(a1)){
  953. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  954. T3 b1='\46';
  955. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  956. }/*]*/
  957. /*]*/
  958. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  959. T3 b1='\50';
  960. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  961. }/*]*/
  962. /*]*/
  963. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  964. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  965. }/*]*/
  966. /*]*/
  967. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  968. T3 b1='\51';
  969. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  970. }/*]*/
  971. /*]*/
  972. }
  973. else{
  974. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  975. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  976. }/*]*/
  977. /*]*/
  978. }
  979. /*FI]*/
  980. }
  981. /*FI]*/
  982. }
  983. /*FI]*/
  984. }
  985. /*No:CALL_INFIX_INT_REM.is_void*/
  986.  
  987.  
  988. T0* r134operator(void){
  989. T0* R=NULL;
  990. R=((T0*)ms14_374);
  991. return R;
  992. }
  993.  
  994.  
  995. void r134afd_check(T134* C){
  996. T0* _running=NULL;
  997. T0* _rc=NULL;
  998. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  999. _running=(((T24*)_rc))->_running/*12*/;
  1000. /*[IF*/
  1001. if((_running)==((void*)(NULL))){
  1002. r21add_position(X56start_position((C)->_target/*4*/));
  1003. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  1004. r7append((T7*)(oBC21explanation),b1);
  1005. }/*]*/
  1006. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  1007. r7append((T7*)(oBC21explanation),b1);
  1008. }/*]*/
  1009. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1010. r7append((T7*)(oBC21explanation),b1);
  1011. }/*]*/
  1012. r21print_as_warning((T21*)(oBC12eh));
  1013. r24set_at_run_time(((T24*)_rc));
  1014. }
  1015.  else if((r328count(((T328*)_running)))>(1)){
  1016. r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  1017. }
  1018. /*FI]*/
  1019. X56afd_check((C)->_target/*4*/);
  1020. /*[IF*/
  1021. {/*AT*/X149afd_check((C)->_arguments/*8*/);
  1022. }
  1023. /*FI]*/
  1024. }
  1025.  
  1026.